<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>todo</string>
		<string>tasks</string>
		<string>todolist.txt</string>
	</array>
	<key>keyEquivalent</key>
	<string>^~T</string>
	<key>name</key>
	<string>Tasks</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>match</key>
			<string>^\s*(\w+.*?:\s*?(\@[^\s]+(\(.*?\))?\s*?)*$\n?)</string>
			<key>name</key>
			<string>keyword.control.header.todo</string>
		</dict>

		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bullet.completed.todo</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>comment.line.completed.todo</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>meta.tag.todo.completed</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bullet.completed.todo</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>comment.line.completed.todo</string>
				</dict>
				<key>6</key>
				<dict>
					<key>name</key>
					<string>meta.tag.todo.completed</string>
				</dict>
			</dict>
			<key>match</key>
			<string>^\s*(?:(\+|✓|✔|☑|√|\[x\])(\s+(?:[^\@\n]|(?&lt;!\s)\@|\@(?=\s))*)([^\n]*))|^\s*(?:(-)(\s+(?:[^\@]|(?&lt;!\s)\@|\@(?=\s))*)(.*\@done(?=\s|\(|$)[^\n]*))</string>
			<key>name</key>
			<string>meta.item.todo.completed</string>
		</dict>

		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bullet.cancelled.todo</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>text.cancelled.todo</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>meta.tag.todo.cancelled</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bullet.cancelled.todo</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>text.cancelled.todo</string>
				</dict>
				<key>6</key>
				<dict>
					<key>name</key>
					<string>meta.tag.todo.cancelled</string>
				</dict>
			</dict>
			<key>match</key>
			<string>^\s*(?:(✘|x|\[-\])(\s+(?:[^\@\n]|(?&lt;!\s)\@|\@(?=\s))*)(.*))|^\s*(?:(-)(\s+(?:[^\@]|(?&lt;!\s)\@|\@(?=\s))*)(.*\@cancelled(?=\s|\(|$)[^\n]*))</string>
			<key>name</key>
			<string>meta.item.todo.cancelled</string>
		</dict>

		<dict>
		  <key>begin</key>
		  <string>^\s*(?!-|\+|✓|✔|√|❍|❑|■|□|☐|▪|▫|–|—|≡|→|›|\[[\sx-]\]|＿|✘|(x\s+))(?=\S)</string>
		  <key>end</key>
		  <string>$\n?</string>
		  <key>name</key>
		  <string>notes.todo</string>
		  <key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#italic</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#bold</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#url</string>
				</dict>
			</array>
		</dict>

		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bullet.pending.todo</string>
				</dict>
			</dict>
			<key>begin</key>
			<string>^\s*(-|❍|❑|■|□|☐|▪|▫|–|—|≡|→|›|\[\s\])(?=(\s+(?:[^\@\n]|(?&lt;![ \t])\@)*)(?!([^\n]*)?(\@done|\@cancelled)[\s\(]))</string>
			<key>end</key>
			<string>$</string>
			<key>name</key>
			<string>meta.item.todo.pending</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#italic</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#bold</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#url</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#tag</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#today</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#low</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#high</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#critical</string>
				</dict>
			</array>
		</dict>

		<dict>
			<key>match</key>
			<string>^＿+$</string>
			<key>name</key>
			<string>meta.punctuation.archive.todo</string>
		</dict>

		<dict>
			<key>match</key>
			<string>^\s*---.{3,5}---+$</string>
			<key>name</key>
			<string>meta.punctuation.separator.todo</string>
		</dict>

	</array>


	<key>repository</key>
	<dict>

		<key>bold</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.bold</string>
				</dict>
			</dict>
			<key>begin</key>
			<string>(?&lt;=\s|^)(\*\*|__)(?=\S)(?=(?!(?&lt;=\S)\1)[^\n]+(?&lt;=\S)\1)(?=[^\n]+(?&lt;=\S)(\1)((?![\w\d\n])|(?=\s|$)))</string>
			<key>end</key>
			<string>(?&lt;=\S)(\1)((?![\w\d\n])|(?=\s|$))</string>
			<key>name</key>
			<string>todo.bold</string>
		</dict>

		<key>italic</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.italic</string>
				</dict>
			</dict>
			<key>begin</key>
			<string>(?&lt;=\s|^)(\*|_)(?=\S)(?=(\1\1|(?!(?&lt;=\S)\1).)++(?&lt;=\S)\1)(?=[^\n]+(?&lt;=\S)(\1)(?!\1|[\w\d]))</string>
			<key>end</key>
			<string>(?&lt;=\S)(\1)(?!\1|[\w\d])</string>
			<key>name</key>
			<string>todo.italic</string>
		</dict>

		<key>url</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.url</string>
				</dict>
			</dict>
			<key>match</key>
			<string>(?&lt;!\S)(&lt;)\w+?(?!\s)(\.|:)(?!\s)[^\n]+?(&gt;)</string>
			<key>name</key>
			<string>todo.url</string>
		</dict>

		<key>tag</key>
		<dict>
			<key>match</key>
			<string>(?&lt;=\s)\@(?!(high|today|critical|low|completed|done)[\s\(])[\w\d\.\(\)\-!? :\+]+[ \t]*</string>
			<key>name</key>
			<string>meta.tag.todo</string>
		</dict>

		<key>today</key>
		<dict>
			<key>match</key>
			<string>(?&lt;=\s)\@today|✭ᴛᴏᴅᴀʏ</string>
			<key>name</key>
			<string>string.other.tag.todo.today</string>
		</dict>

		<key>low</key>
		<dict>
			<key>match</key>
			<string>(?&lt;=\s)\@low|✭low</string>
			<key>name</key>
			<string>string.other.tag.todo.low</string>
		</dict>

		<key>high</key>
		<dict>
			<key>match</key>
			<string>(?&lt;=\s)\@high|✭high</string>
			<key>name</key>
			<string>string.other.tag.todo.high</string>
		</dict>

		<key>critical</key>
		<dict>
			<key>match</key>
			<string>(?&lt;=\s)\@critical|✭critical</string>
			<key>name</key>
			<string>string.other.tag.todo.critical</string>
		</dict>

	</dict>
	<key>scopeName</key>
	<string>text.todo</string>
	<key>uuid</key>
	<string>8fj2g29c-04ef-4330-9a6b-9b99aae1c418</string>
</dict>
</plist>
